home *** CD-ROM | disk | FTP | other *** search
/ MacHack 2000 / MacHack 2000.toast / pc / The Hacks / MacHacksBug / Python 1.5.2c1 / Lib / test / test_pwd.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2000-06-23  |  1.8 KB  |  82 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 1.5)
  3.  
  4. verbose
  5. print 'pwd.getpwall()'
  6. entries = pwd.getpwall()
  7. for e in entries:
  8.     name = e[0]
  9.     uid = e[2]
  10.     if verbose:
  11.         print name, uid
  12.     
  13.     print 'pwd.getpwuid()'
  14.     dbuid = pwd.getpwuid(uid)
  15.     if dbuid[0] != name:
  16.         print 'Mismatch in pwd.getpwuid()'
  17.     
  18.     print 'pwd.getpwnam()'
  19.     dbname = pwd.getpwnam(name)
  20.     if dbname[2] != uid:
  21.         print 'Mismatch in pwd.getpwnam()'
  22.     else:
  23.         print 'name matches uid'
  24.  
  25. bynames = { }
  26. byuids = { }
  27. for n, p, u, g, gecos, d, s in entries:
  28.     bynames[n] = u
  29.     byuids[u] = n
  30.  
  31. allnames = bynames.keys()
  32. namei = 0
  33. fakename = allnames[namei]
  34. while bynames.has_key(fakename):
  35.     chars = map(None, fakename)
  36.     for i in range(len(chars)):
  37.         if chars[i] == 'z':
  38.             chars[i] = 'A'
  39.             break
  40.         elif chars[i] == 'Z':
  41.             continue
  42.         else:
  43.             chars[i] = chr(ord(chars[i]) + 1)
  44.             break
  45.     else:
  46.         namei = namei + 1
  47.         
  48.         try:
  49.             fakename = allnames[namei]
  50.         except IndexError:
  51.             0
  52.             0
  53.             entries
  54.             break
  55.         except:
  56.             0
  57.  
  58.     fakename = string.join(map(None, chars), '')
  59.     continue
  60.     0
  61.  
  62. try:
  63.     pwd.getpwnam(fakename)
  64. except KeyError:
  65.     entries
  66.     entries
  67.     print 'caught expected exception'
  68. except:
  69.     entries
  70.  
  71. print 'fakename', fakename, 'did not except pwd.getpwnam()'
  72. fakeuid = 4127
  73. while byuids.has_key(fakeuid):
  74.     fakeuid = fakeuid * 3 % 65536
  75.  
  76. try:
  77.     pwd.getpwuid(fakeuid)
  78. except KeyError:
  79.     print 'caught expected exception'
  80.  
  81. print 'fakeuid', fakeuid, 'did not except pwd.getpwuid()'
  82.